Method and apparatus for programming updates from a network unit to a mobile device

ABSTRACT

The invention relates to transmitting a firmware of a mobile device from a network unit to be accessible for the mobile device and to be programmed in the mobile device. According to the invention, the firmware of a mobile device belonging to a network is updated so that first the update data is transmitted from a unit of the network, in which unit the update data is stored, by means of the mobile device to be stored in an external memory unit of the mobile device. The stored update data is programmed in the permanent memory unit of the mobile device according to the programming logics provided therein.

The invention relates to transmitting the firmware of a mobile devicefrom a network unit to be accessible by the mobile device, and toprogramming said firmware in the mobile device.

Mobile devices typically include a certain firmware that is alwaysexecuted when starting the device. The firmware defines for instance theinterfaces for the API (application program interface) and for the GUI(graphical user interface). The firmware is responsible for thefunctional usage environment of the mobile device and for its features.Generally the firmware is programmed in the mobile device already at thefactory. Thereafter it can be maintained or updated in service centers.However, for example in certain jobs or in general when the telephonefeatures are developed, outdated or increased, or when errors occur, itis from time to time necessary to update the firmware of a mobile devicein order to optimize the operation of the mobile device.

The patent publication EP1087294 introduces a method and apparatus forupdating by remote control a firmware recorded in the flash memory of acommunication device located in a network. In this solution, the flashmemory of the communication device is divided into at least two parts,because the firmware recorded in the flash memory cannot be run andupdated simultaneously. In this publication, there also is used the RAMmemory of the communication device, into which there is saved data fromthe running period. The update version of the firmware is transmitted tothe communication device and stored in the flash memory thereof insections, little by little.

The patent publication WO0017749 discloses an automatic firmwareupdating in a peripheral device. The new firmware version is transmittedfrom a PC to the peripheral device via USB (universal serial bus). Thenew version is recorded in the flash memory as separate from thecurrent, active firmware. Prior to installation, the new version issubjected to an integrity check. The updating of the whole firmware iscarried out almost automatically, and only a minimal amount ofcooperation is required of the user, sometimes none at all.

Also in the patent publication U.S. Pat. No. 6,275,694, the program of amobile device is updated by remote control. In said publication, theupdating is carried out by a remote control terminal that is connectedto the data network. In order to update a given portable device, thecontrol terminal establishes a connection with it by sending a certainpreparation signal. The portable device receives the signal and checksits validity, and in case the signal is valid, it transmits averification signal to the control terminal indicating that it is readyto receive the update version of the firmware code. When the controlterminal receives the verification signal, it proceeds to download anupdate version of the firmware code into the flash memory of the mobiledevice.

In all known arrangements, when updating the firmware of a device, thereis utilized the fact that the non-volatile flash memory can be updatedin memory unit blocks of a given size, larger than bytes, which blockscan then be removed and reprogrammed irrespective of each other. Eventhe firmware to be updated is divided into separate units, so that theflash memory can be programmed block by block. Thus, in the case of aninterruption in the operation, the data of a given block can bereupdated, so that all of the data stored in the memory is not lost, andneither is the share of the firmware. It is not possible to program thewhole flash memory at a time, because it is risky to transmit a largedata unit in one block by air, and the memory capacity of the device isnot sufficient to store both the old and the new version at the sametime.

In typical prior art solutions, there is an external programming device,for instance a PC, that contains the update version and the programminglogics, and by means of which the updating process is carried out. Thesesolutions require that the external programming device is capable ofperforming the programming step, whereafter the update version istransmitted to the device to be updated. In addition, remote downloadingrequires that the device to be updated has enough memory available.Typically the features of mobile devices, as well as many other portabledevices, are small size, limited processing and memory capacity, lowpower consumption and low price. In addition, these devices aretypically specialized in performing certain kinds of functions. Thesetypical features of the devices also cause certain limitations forupdating the firmware, when compared with larger, stationary intelligentdevices.

The objective of the invention is to realize method and apparatus thatis easy, economical and secure in operation for updating firmware.

The objective is achieved by transmitting the update data from a networkunit to an external memory unit of the mobile device, from which themobile device programs and updates its firmware.

The invention is characterized by what is specified in thecharacterizing parts of the independent claims. Preferred embodiments ofthe invention are described in the dependent claims.

According to a preferred embodiment of the invention, in order to updatethe firmware of a mobile device, the update data is downloaded from thenetwork, for instance from a network server, a database or an operator.The update data is stored in an external memory unit of the mobiledevice, which can be any unit that can be connected to the mobile deviceand has an own memory capacity, for instance a MultiMediaCard (MMC), ora peripheral device, such as a desktop charger that has memory or thathas been provided with memory. According to a preferred embodiment ofthe invention, the update data stored in the external memory unit of themobile device is programmed in the firmware unit by means of aprogramming driver provided in the mobile device.

According to a first preferred embodiment of the invention, the mobiledevice includes a permanent menu from which the updating of the firmwarecan be selected. This selection automatically activates certainpredetermined loading and programming steps to be carried out. Typicallythe mobile device automatically contacts a predetermined network server,from where the update data is downloaded to the mobile device. Theupdate data is stored in an external memory unit of the mobile device.Thereafter the firmware of the mobile device can be updated according tothe update data stored in the external memory unit.

According to another preferred embodiment of the invention, the updatingof the firmware of a mobile device is carried out completely or nearlyautomatically. The updating can be activated to be performed at a givenpoint of time, as a response to a given function or for mobile devicesbelonging to a given network or group.

According to a third preferred embodiment of the invention, the updatingof the firmware is carried out so that the mobile device browses theupdate data and different update versions located on the network server.In the browser, there is presented a menu located on the network server,in which menu there can be selected the updating of the firmware of themobile device. Remote downloading can be carried out by transmitting theupdate data for instance according to the known WAP (WirelessApplication Protocol). When the update data is stored in the externalmemory unit of the mobile device, the actual updating of the firmware iscarried out for instance when the mobile device is next switched onafter switching off the power.

In following the invention is explained in more detail with reference tothe accompanied drawings, where

FIG. 1 is a block diagram illustrating an arrangement according to apreferred embodiment of the invention for updating the firmware of amobile device,

FIG. 2 is a flow diagram illustrating a method according to a preferredembodiment of the invention for updating the firmware of a mobiledevice,

FIG. 3 is a flow diagram illustrating a method according to anotherpreferred embodiment of the invention for updating the firmware of amobile device, and

FIG. 4 is a flow diagram illustrating a method according to a thirdpreferred embodiment of the invention for updating the firmware of amobile device.

FIG. 1 illustrates a mobile device 101 and the required components forupdating its firmware according to a preferred embodiment of theinvention. The mobile device 101 comprises a control unit 104 thatcontrols all functions of the mobile device. The control unit 104transmits data between the components and controls the operation of themobile device units. Among other things, the control unit 104 identifiesthe protocols to be used, through which data can be transmitted by air.

In this preferred embodiment, the memory unit of the mobile device 101constitutes the permanent ROM (read-only memory) 102 and the temporaryRAM (random access memory) 103. The permanent ROM 102 typically includesa non-volatile flash memory, where the data from the starting block ofthe device is stored. Typically in the flash memory, there is stored anapplication by means of which the selected update firmware can bedownloaded from the network 107 to an external memory unit 106. Inaddition, the permanent ROM 102 includes an application or a programmingdriver by which the updating of the flash memory is carried out on thebasis of the update data stored in the external memory unit. Accordingto a preferred embodiment of the invention, in the ROM 102 there isstored a firmware algorithm or -programming driver for running theupdate version. Typically the firmware algorithm or -programming driveris stored in the RAM 103, at least for the duration of the programmingof the update data. According to another preferred embodiment of theinvention, the firmware algorithm or -programming driver is stored,along with the update data, to the external memory unit and downloadedtherefrom to the RAM 103 prior to programming the update data.

The mobile device includes a connection interface 105, through which themobile device can be in connection with external components and units.The connection interface 105 is a logic and functional block of themobile device 101, and it can be realized as a hardware or a softwarecomponent. According to a preferred embodiment, via the connectioninterface 105 the mobile device can be in connection with the network107, for instance with the network servers. Connection with externalservices, functions and units can be established for instance accordingto the WAP.

In addition, the connection interface 105 comprises a communication busthrough which the external memory unit 106 according to the preferredembodiment of the invention is connected to the mobile device 101. Thetype and operation of said communication bus, as well as thetransmission protocols used by it can vary according to what type ofexternal memory unit 106 is employed. The memory bus can be for instancea digital serial communication bus for connecting a memory card as theexternal memory unit 106 of the mobile device 101. Typically theexternal memory unit 106 is closely connected to the mobile device 101.The external memory unit 106 can be any device that has memory or thatcan be provided with memory. The external memory unit can be for examplea so-called I/O device (Input/Output), such as an I/O integrated circuitboard, memory card, multimedia card, desktop charger, telephone casing,car accessory, backup disc, game card or a correspondingmemory-containing unit to be connected to the device. Memory cards havebeen developed, among others, by digital camera manufacturers—by way ofexample, let us mention Sony Standard Memory Stick, Panasonic SecureDigital (SD) memory card or Olympus SmartMedia card. Logically theexternal memory unit 106 according to the preferred embodiment of theinvention is only an external memory unit, and it need not include anyfunctionality.

The network 107 may be any possible communication network to which themobile device 101 is connected, and which can be contacted through theconnection interface 105. The update data to be downloaded from thenetwork 107 can be located on a server of the network 107, in adatabase, in a device of the operator or in a corresponding storagelocation of the network. The mobile device 101, or generally a wirelessdevice can, for example by means of the known WAP, gain access totypical Internet services and to other devices and units of the networkusing the WAP. The connection established from the mobile device 101 tothe storage location of the update data can be circuit orpacket-switched, message-based or any other type of communication form.Typically the update data is in a binary form, wherefore it can betransmitted by means of any known transmission technique.

FIG. 2 illustrates a method according to a preferred embodiment of theinvention for updating the firmware of a mobile device. This methodaccording to a preferred embodiment of the invention is provided with anown permanent menu for updating the firmware. Thus the user may, when heso wishes, update for instance new features or functions in his mobiledevice. The user typically gets offers of new additional features orfunctions, for instance through commercial updating versions. In step201, the updating function is selected in the mobile device's menu.There can be certain different updating alternatives in the menu. Instep 202, there is established a connection with the network server. Theuser does not necessarily have to do anything or even response after hehas chosen the update function in the menu of his mobile device.Advantageously there is in advance defined a certain path, address ornetwork location to the permanent updating function to which theconnection is made. Thus the update data is always downloaded from acertain authorized party, for instance from a server maintained by themobile device manufacturer, maintenance site or operator.

When connection to the predetermined network location is established instep 202, the update data is downloaded from the network through themobile device, to be stored in the external memory unit in step 203. Themobile device may convert the update data to a form required by theexternal memory unit prior to storing it in the external memory unit.The external memory unit is a unit to be connected to the mobile device,which includes or can be provided with memory. Because the memorycapacity of the mobile device is limited, the external memory unit isused for storing the update data. Thus the mobile device is not loadedwith the update data that is typically programmed only once. The mobiledevice must be capable of storing the update data downloaded from thenetwork to the external memory unit and of reading said update data fromthe external memory unit. Typically the external memory unit only servesas a storage of binary data, and any kind of processing or modifyingcapacities are not required. Naturally there must be a bus between themobile device and the external memory unit for transmitting information.Typically the control unit of the mobile device controls the externalmemory unit connected to the mobile device in similar fashion as othercomponents of the mobile device.

In the embodiment illustrated in FIG. 2, the mobile device isautomatically restarted in step 204 after the update data is stored inthe external memory unit. When restarting, the update data is programmedin the mobile device from the external memory unit. The programmingdriver located in the RAM of the mobile device programs the mobiledevice ROM so that the ROM is emptied, and the new version is programmedfrom the external memory unit. The programming driver can be stored inthe permanent ROM of the mobile device, so that the firmware of themobile device can always be programmed, even if the rest of the datashould be lost.

FIG. 3 illustrates a method according to another preferred embodiment ofthe invention for automatically updating the firmware of a mobiledevice. In this embodiment, the starting of the updating function can betriggered by a certain function, or the updating can be performed atgiven intervals, or the operation can be carried out in a controlledmanner at the initiative of the server. These updates can be used forinstance for updating all mobile devices in a given local area network,for example the mobile devices of a given group of professionals.

In step 301, there is obtained an indication that the automatic updatingof the firmware should be started. Said indication can be for instancethe fact that the mobile device is set in a desktop charger after thework time has ended. According to a preferred embodiment, the local areanetwork provider sends, for example by the initiative of the employer,an update command from the server to all or certain devices in the localnetwork. In step 302, there is established a connection between themobile device to be updated and the network unit containing update data.This is carried out as a so-called background processing, which the userdoes not necessarily observe. In step 303, the update data is downloadedfrom the network and stored in the external memory unit of the mobiledevice. Also these steps are in this embodiment carried out as abackground processing, for instance as packet transfer mode.

In step 304 it is checked whether the device to be updated is active.Activity here means that the device is ready for operation and that itcan be for instance programmed. In case the device is not active in step304, the program moves over to step 307 and the operation is ended. Theactual updating of the firmware from the external memory unit isperformed when the device is started for the next time. In the externalmemory of a mobile device that is left in the charger for example at theend of a work shift, there can be stored the update data that isdownloaded from the network server. When the mobile device is switchedon, the downloading is usually started from the internal ROM. If the ROMhas been emptied or it contains old version, the update data can belooked up for instance in the external memory unit.

In case the device is active in step 304, it is restarted, and from theexternal memory unit there is in this embodiment downloaded first theprogramming driver and the programming logics into the mobile device RAMin step 305. The update data is programmed in the mobile device by meansof the programming driver, according to the programming logics, in step306. When the firmware of the mobile device is updated, the updatingoperation is ended in step 307.

FIG. 4 illustrates a method according to a third preferred embodiment ofthe invention for updating the firmware of a mobile device by means ofthe mobile device browser or by means of another correspondingconnection program. The mobile device supplier can for instance detectan error in the firmware of the product and indicate for the user aserver where a new, update version can be downloaded in the devicewithout expenses. This is a flexible way to operate from the point ofview of both the manufacturer, the maintenance and the user. In step401, there is established a connection via the mobile device browser tothe network server, where the updating versions of programs are stored.The mobile device browser can be for instance a WAP browser, in whichcase the functions are represented and performed according to thefeatures of said browser. When the connection is established, the mobiledevice screen shows a server menu which according to a preferredembodiment contains update data or versions for updating the firmware.In step 402, there is selected a desired updating alternative or versionin the menu shown by the mobile device browser. There can be providedvarious different updating alternatives for differently markedterminals, for various different firmwares and different types of userinterfaces.

In step 403, the selected update data is downloaded through the mobiledevice to be stored in the external memory unit. In step 404 it ischecked whether the update data is in the form or format required by theexternal memory unit and the external memory bus. If the form of theupdate data is compatible with the external memory unit and with theexternal memory bus, the mobile device controlling the transmission ofthe update data conducts the update data directly to the external memorybus, and the update data is stored in the external memory unit in step406. If the transmission and storage form of the update data in step 404is not compatible with the employed external memory bus and memory unit,the update data is converted in the mobile device, in step 405, into aform required by the external memory unit and by its connection busprior to transmitting and storing the update data in the external memoryunit in step 406. When the update data is stored in the external memoryunit, it is possible in step 407 to ask the user whether the update dataof the mobile device should be programmed immediately. If the mobiledevice is not updated immediately, the process is ended in step 409. Nowthe update data remains in the external memory unit, from which it isadvantageously updated when the mobile device is next started.

If the choice in step 407 is to update the firmware immediately, theprogram moves over to step 408, where the mobile device is restarted, sothat the update data of the firmware is read from the external memoryunit and programmed in the mobile device. The programming driver can bereadily installed in the RAM of the mobile device. According to apreferred embodiment, the programming driver is transmitted to the RAMfrom the ROM, where it is permanently located. According to anotherpreferred embodiment, the programming driver is downloaded prior toprogramming the update data from the external memory unit into themobile device. When the firmware is updated, the operation is ended instep 409.

When mobile device firmwares are updated according to the preferredembodiments of the invention, a given update version to be downloadedfrom the network can be associated with the requesting mobile device, sothat the update version can be programmed in this particular mobiledevice only. The described mobile device specific transmission of updatedata is safe, because the party maintaining the update data can controlwhich device receives the certain data and instructions. It is importantthat the firmware is approved by an official party, so that thefunctions are tested and desired, and that for instance deliberateerrors or viruses are not allowed to spread. According to anotherpreferred embodiment, the update version stored in the external memoryunit can be programmed for instance in the mobile devices of a certaingroup, a local area network or a family, in which case it is notnecessary for everybody to carry out the updating process separately.According to a preferred embodiment, for instance the update data thatis transferred to an external memory card can freely be programmed evenin several mobile devices. The update data stored in the external memoryunit can include a counter value that is subtracted by one in connectionwith each programming process. Thus the counter value defines how manytimes the update data that was downloaded from the network can still beprogrammed. When the counter value of the update data is less than one,said update data can be removed from the external memory unit.

The previous specification and the accompanied figures are meant toillustrate the arrangement and the method according to the presentinvention, and the invention is by no means restricted to the previouslydescribed preferred embodiments only. For a man skilled in the art, itis obvious that there are several different alternative methods forapplying and realizing the invention, which all fall within the scope ofthe inventive idea defined in the independent claims.

1. A method for updating a firmware of a mobile device belonging to anetwork, the method comprising: transmitting update data from a networkunit using a mobile device (403), to which there is connected a logic,external memory unit, storing the update data in the external memoryunit (203, 303, 406) of the mobile device, and programming the storedupdate data in a permanent memory unit (204, 306, 408) of the mobiledevice, according to the programming logics provided in the mobiledevice.
 2. A method according to claim 1, wherein the method comprises astep of transmitting the update data from the network unit to the mobiledevice as a response to a certain function that triggers thetransmission, said function being one of the following: choosing fromthe network unit's menu (402) by a user, choosing from the mobiledevice's menu (201) by a user, an appearing of new update data to thenetwork unit, or an outdating (301) of the firmware of the mobiledevice.
 3. A method according to claim 1, wherein the logic, externalmemory unit is connected to the mobile device by means of an externalmemory bus (105).
 4. A method according to claim 1, wherein the methodcomprises a step of transmitting the update data by the mobile device(403), where the update data is converted to be compatible with thememory unit and with the memory bus (405) to be connected thereto,whereafter the converted update data is transmitted to the externalmemory unit along the memory bus (406).
 5. A method according to claim1, wherein the method comprises a step of transmitting the update databy a mobile device, through which the update data is directlytransmitted further to the external memory bus of the mobile devicealong a memory bus (203).
 6. A method according to claim 1, wherein themethod comprises a step of programming the update data stored in theexternal memory unit in the mobile device, when the mobile device isswitched on for the next time (304, 307, 407, 409).
 7. A methodaccording to claim 1, wherein the method comprises a step of copying theprogramming logics for programming the update data from an externalmemory unit to the permanent memory unit of the mobile device prior toprogramming the update data (305).
 8. A method according to claim 1,wherein the method comprises a step of storing the programming logicsfor updating the update data from the permanent memory of the mobiledevice to the RAM memory of the mobile device prior to programming theupdate data.
 9. An arrangement for updating a firmware of a mobiledevice belonging to a network, the arrangement including an externalmemory unit (106) for storing the update data, means for transmittingthe update data from a network (107) unit to the external memory unit(106) of the mobile device, means for storing the update data to theexternal memory unit (106) of the mobile device, and means forprogramming the stored update data to a permanent memory unit (102) ofthe mobile device by means of a programming driver provided in themobile device.
 10. An arrangement according to claim 9, wherein themobile device includes an external bus (105) for connecting a logic,external memory unit (106) to the mobile device (101).
 11. Anarrangement according to claim 9, wherein the mobile device includesmeans for converting the update data into a form (104,105) required bythe external memory unit.
 12. An arrangement according to claim 9,wherein the mobile device includes means for copying the programmingdriver to its permanent memory unit (102) from the external memory unit(106) prior to programming the update data.
 13. An arrangement accordingto claim 9, wherein said means are programmable means.
 14. A mobiledevice (101) belonging to a network (107) and including a firmware to beupdated, the mobile device comprising: a connection interface (105) forconnecting the mobile device with the network and for transmitting anupdate data from the network to the mobile device, a memory businterface for connecting the mobile device with an external memory unit(106), and for transmitting the update data from the mobile phone to theexternal memory unit in order to store the update data to the externalmemory unit, and means for programming the stored update data to apermanent memory unit of the mobile device according to programminglogics provided in the mobile device.
 15. A mobile device according toclaim 14, wherein the mobile device comprises a mobile phone.
 16. Anexternal memory unit, connectable to a mobile device, for storing updatedata of a firmware of the mobile device, the external memory unitcomprising: a memory bus interface for connecting to the mobile deviceand for receiving the update data from a network unit through the mobiledevice, means for storing the update data, and means for providing themobile device with the stored updating data in order to program thestored update data to a permanent memory unit of the mobile deviceaccording to programming logics of the mobile device.